A typical personal computer (PC) and other embedded devices such as mobile phones include two time keeping systems: a hardware real time clock (RTC), and a software virtual clock maintained by an operating system. The RTC typically includes a battery backup source of electrical power for the purpose of maintaining accurate time of day information while the device is turned off or the main power is disconnected. In this way the RTC continuously maintains an estimate of the current date and time. The software virtual clock is typically synchronized to the RTC during PC power up and initialization (i.e., during operating system boot up).
These devices commonly adjust their reference time when a trusted remote time source becomes available. Many different time synchronization systems exist for synchronizing computer system time clocks over networks (e.g., the Internet). Examples of such network time synchronization systems include the network time protocol (NTP) and the related simple network time protocol (SNIP). Time synchronization software executed by the PC or other device typically provides periodic time synchronization of an RTC to an external time source. The time synchronization software may also track RTC timekeeping errors and adjust programmable RTC timekeeping circuits to improve RTC timekeeping accuracy between periodic time synchronizations.
The need for an RTC and backup power supplies increases the overall cost of the device and can limit device reliability since it depends on components with fixed lifespans. In addition, the backup power supply may include hazardous materials within the batteries. While normal phone batteries can be removed for recycling, systems containing backup batteries often need to be disassembled to recover the hazardous materials.